package srv;

import dao.PlatoDAO;
import exceptions.PlatoException;
import negocio.Area;
import negocio.Plato;

public class PlatoSRV 
{
	private static PlatoDAO dao;
	static 
	{
		dao = PlatoDAO.getInstancia();
	}
	
	public void agregarPlato(Plato plato)
	{
		dao.persist(plato);
	}
	
	public void modificarPlato(Plato plato)
	{
		dao.update(plato);
	}
	
	public void bajaPlato(Plato plato)
	{
		dao.delete(plato);
	}
	
	public Plato buscarPlato(String nombre) throws PlatoException
	{
		Plato p = null;
		try 
		{
			p = dao.buscarPlato(nombre);
		} 
		catch (Exception e) 
		{
			throw new PlatoException("No se encontro el plato.");
		}
		return p;
	}
	
	public Plato buscarPlato(int id) throws PlatoException
	{
		Plato p = null;
		try {
			p = dao.buscarPlato(id);
		} catch (Exception e) {
			throw new PlatoException("No se encontro el plato.");
		}
		return p;
	}
	
	public boolean isPlatoDisponible(String nombrePlato) 
			throws PlatoException {
		Plato plato = buscarPlato(nombrePlato);
		return plato.isDisponible();
	}

	public void terminarPlato(Plato plato, Area area) 
			throws PlatoException {
		area.terminarPlato(plato);
		dao.update(area);
	}
}
